package org.practice.test;
/**cd e:
*javac -d e:\ e:\JavapAnalyse.java
*java -classpath . com.lordor.test.JavapAnalyse <args>
*javap -c -private -classpath . com.lordor.test.JavapAnalyse
*========================================
*Javap 该工具把字节代码反汇编成为由JVM规范定义的字节代码指令。
　	0 ldc #2      //常量池中推送至栈顶 即String“” 
　　2 astore_1  //将栈顶引数值存入第2个本地变量 即s=""
　　3 iconst_0  //常数0入栈
　　4 istore_2  //将栈顶int型数值存入第3个本地变量 即i=0;
　　5 goto 30  //循环
　　8 new #3   //new java/lang/StringBuilder
　　11 dup  //复制栈顶数值并将复制值压入栈顶  即s=s+i
　　12 invokespecial #4  //调用超类构造方法，实例初始化方法，私有方法 即 java/lang/StringBuilder."<init>":()
　　15 aload_1    //将第2个引用类型本地变量推送至栈顶
　　16 invokevirtual #5  //调用实例方法 java/lang/StringBuilder.append
　　19 iload_2  //将第3个int型本地变量推送至栈顶
　　20 invokevirtual #6  //调用实例方法 java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder
　　23 invokevirtual #7  //调用实例方法 java/lang/StringBuilder.toString:()Ljava/lang/String;
　　26 astore_1               //将栈顶引用型数值存入第2个本地变量 
　　27 iinc 2 1                //将第3个本地变量增加1  即i++;
　　30 iload_2                //将第3个int型本地变量推送至栈顶
　　31 iload_0                //将第1个int型本地变量推送至栈顶  即count的值
　　32 if_icmplt 8          //比较栈顶两int型数值大小，当结果小于0时跳转 即判断i是否小于count
　　35 aload_1             // 将第2个引用类型本地变量推送至栈顶
　　36 iinc 2,1             //累加,相当于i++
	37 areturn             //从当前方法返回对象引用
*/
public class JavapAnalyse{
	public static void main(String[] args) throws Exception {
		
	}
	private static String withStrings(int count) { 
		String s = ""; 
		for (int i = 0; i < count; i++) { 
		 s += i; 
		} 
		return s; 
	} 

	private static String withStringBuffer(int count) { 
		StringBuffer sb = new StringBuffer(); 
		for (int i = 0; i < count; i++) { 
			sb.append(i); 
		} 

		return sb.toString(); 
	
	}
}